دارم روی یک زیرساخت عجیب کار میکنم و توی تستهای اولیهش هم جواب گرفتم.
به نظر میاد هنوز بحث بین اینکه کدوم معماری رو انتخاب کنیم داغه نه؟ مونولیت؟ ماژولار یا میکروسرویس یا ماکروسرویس؟
کاری که توی Easy Microservices کردیم اینطوری شد که دیگه مهم نیست کدومش رو انتخاب میکنی، هر زمان که بخوای میتونی روی معماری خودت با کمترین تغییرات سوییچ کنی!
چطوری کار میکنه؟
به جای اینکه از مونولیت و ماژولار بریم سمت مایکروسرویس، برعکس عمل کردیم. ابتدا مایکروسرویس ساختیم حالا زیرساختهای اصلی اونو عنوان ماژول بهش دادیم. اونوقت به عنوان پکیج اینارو میتونید در یک پروژه ی مونولیت نصب کنید با هم تلفیقشون کنید و معماری رو تغییر بدید. هم میتونید ماژولاری داشته باشید که دیتابیس هاش جدا باشن هم میتونید دیتابیس هارو یکی کنید.
@easymicroservice
@easymicroservices
@csharptips
#microservice
#monolith
#modular
به نظر میاد هنوز بحث بین اینکه کدوم معماری رو انتخاب کنیم داغه نه؟ مونولیت؟ ماژولار یا میکروسرویس یا ماکروسرویس؟
کاری که توی Easy Microservices کردیم اینطوری شد که دیگه مهم نیست کدومش رو انتخاب میکنی، هر زمان که بخوای میتونی روی معماری خودت با کمترین تغییرات سوییچ کنی!
چطوری کار میکنه؟
به جای اینکه از مونولیت و ماژولار بریم سمت مایکروسرویس، برعکس عمل کردیم. ابتدا مایکروسرویس ساختیم حالا زیرساختهای اصلی اونو عنوان ماژول بهش دادیم. اونوقت به عنوان پکیج اینارو میتونید در یک پروژه ی مونولیت نصب کنید با هم تلفیقشون کنید و معماری رو تغییر بدید. هم میتونید ماژولاری داشته باشید که دیتابیس هاش جدا باشن هم میتونید دیتابیس هارو یکی کنید.
@easymicroservice
@easymicroservices
@csharptips
#microservice
#monolith
#modular
چطوری؟
ما قبلا مفهوم ریپازیتوری و Command Query رو حذف کردیم بنابراین نگران کانفیلیت بین Context ها هم نمیتونیم باشیم!
زیرساخت های دیتابیسی طوری ساخته شدن که Schema از Relational (برای جزئیات بیشتر سوال کنید) تفکیک شده یعنی علاوه بر اینکه سوییچ بین دیتابیس NoSql و SQL رو براتون آسون میکنه، استفاده از کانفیگهای پیشفرض برای اینکه در یک ContextDb دیگه باهم کار کنن هم وجود داره. برای همین شما میتونید یک پروژه مایکروسرویس رو تبدیل به مونولیت کنید.
چالش ها:
1.دیتابیس ها در حالتی که یکی باشن باید مایگرشن جدا بخورن. در حال حاضر انتظار نداریم از مایگرشن های میکروسرویس ها بتونیم توی مونولیت استفاده کنیم، اما تمامی ساختارهای دیتابیس تا جای ممکن دست نمیخورن.
2.اگر کاستوم ریلیشن داشته باشید باید بیشتر از دو خط کد بزنید تا معماری رو تبدیل کنید! 😳😂
داریم سعی میکنیم از هلو هم راحت تر بره تو گلو!
حمایت.
ما قبلا مفهوم ریپازیتوری و Command Query رو حذف کردیم بنابراین نگران کانفیلیت بین Context ها هم نمیتونیم باشیم!
زیرساخت های دیتابیسی طوری ساخته شدن که Schema از Relational (برای جزئیات بیشتر سوال کنید) تفکیک شده یعنی علاوه بر اینکه سوییچ بین دیتابیس NoSql و SQL رو براتون آسون میکنه، استفاده از کانفیگهای پیشفرض برای اینکه در یک ContextDb دیگه باهم کار کنن هم وجود داره. برای همین شما میتونید یک پروژه مایکروسرویس رو تبدیل به مونولیت کنید.
چالش ها:
1.دیتابیس ها در حالتی که یکی باشن باید مایگرشن جدا بخورن. در حال حاضر انتظار نداریم از مایگرشن های میکروسرویس ها بتونیم توی مونولیت استفاده کنیم، اما تمامی ساختارهای دیتابیس تا جای ممکن دست نمیخورن.
2.اگر کاستوم ریلیشن داشته باشید باید بیشتر از دو خط کد بزنید تا معماری رو تبدیل کنید! 😳😂
داریم سعی میکنیم از هلو هم راحت تر بره تو گلو!
حمایت.
این سورس به شما کمک میکنه تا آی پی هایی که درخواست اتصال به سرور شمارو میدن تا بالاخره بتونن لاگین بشن و سرور شما هک بشه رو بلاک میکنه.
اگر به event log های سیستم عاملتون برید شاهد درخواست هایی هستید که به سیستم عامل شما زده میشه ولی با خطای اشتباه بودن نام کاربری و رمز عبور مواجه میشه.
اگر سرور شما قبلا هک شده باشه رمز عبور شما توسط این سرور ها در دیتابیسشون ذخیره شده و استفاده مجدد از اون رمز عبور باعث هک مجدد سیستم عامل میشه.
فقط کافیه Role ای که توی فایروال سیستم عاملتون گذاشتید رو به این ابزار بدید تا تمامی آی پی هایی که به شما درخواست میدن رو بلاک کنه و بعدش دیگه این درخواست ها رو در Event Log ویندوز نخواهی دید.
سورس: سی شارپ
سیستم عامل: ویندوز
https://github.com/Ali-YousefiTelori/Firewall-Ip-Blocker
@easymicroservice
@easymicroservices
@csharptips
اگر به event log های سیستم عاملتون برید شاهد درخواست هایی هستید که به سیستم عامل شما زده میشه ولی با خطای اشتباه بودن نام کاربری و رمز عبور مواجه میشه.
اگر سرور شما قبلا هک شده باشه رمز عبور شما توسط این سرور ها در دیتابیسشون ذخیره شده و استفاده مجدد از اون رمز عبور باعث هک مجدد سیستم عامل میشه.
فقط کافیه Role ای که توی فایروال سیستم عاملتون گذاشتید رو به این ابزار بدید تا تمامی آی پی هایی که به شما درخواست میدن رو بلاک کنه و بعدش دیگه این درخواست ها رو در Event Log ویندوز نخواهی دید.
سورس: سی شارپ
سیستم عامل: ویندوز
https://github.com/Ali-YousefiTelori/Firewall-Ip-Blocker
@easymicroservice
@easymicroservices
@csharptips
GitHub
GitHub - Ali-YousefiTelori/Firewall-Ip-Blocker
Contribute to Ali-YousefiTelori/Firewall-Ip-Blocker development by creating an account on GitHub.
Easy Microservices
Photo
به حریم خصوصی کاربرانتون اهمیت بدید، شما ممکنه پسوردی که از کاربر دریافت میکنید رو برای امنیت اطلاعات و حریم خصوصی کاربر در دیتابیس خودتون رمزنگاری یکطرفه کنید، تا اینجا اوکی، در مرحله بعدی ممکنه از Salt هم استفاده کنید تا کار رو برای هکرها سخت کنید. تا اینجا هم درست.
اما آیا پسوردی که کاربر توی وبسایت شما میزنه رو مستقیم از کلاینت به سمت سرور ارسال میکنید؟
خب چندتا سوال:
من کاربر از کجا بدونم پسورد من رو جای دیگهای ذخیره نمیکنی و ازشون استفاده نمیکنی؟
آیا بهتر نیست که خود شما هم ندونی که پسوردی که من استفاده میکنم چیه و پسورد منو از توی شبکهی خودت رد نکنی و به سمت سرور ارسال نکنی؟
راهکار چیه؟
از یک Salt ثابت هم سمت کلاینت استفاده کنید و پسورد کاربر رو یکبار سمت کلاینت هش کنید و بعدش سمت سرور هرچقدر خواستید Salt و رمزنگاری انجام بدید، اما به خاطر حریم خصوصی کاربر قبل از اینکه اطلاعات رو به سمت سرور بفرستید، اونو سمت کلاینت هم یکبار رمزنگاری کنید.
چرا اینکار رو میکنیم؟ ببینید من ممکنه از یک پسورد در چندین وبسایت استفاده کنم، اگر وبسایتها، رمزی که من استفاده میکنم رو رمزنگاری یکطرفه نکنند، هکرها میتونند بفهمند رمز من چیه و از اون برای هک کردن اکانتهای من در دیگر وبسایتها هم استفاده کنند. بنابراین لطفا همیشه رمزنگاری پسورد کاربر رودر سمت کلاینت یکبار اعمال کنید. درسته روشهایی وجود داره که شما پسورد ثابت برای وبسایتها استفاده نکنید و بهتره که اینکار رو انجام بدید اما میدونیم که همهی کاربران این رو نمیدونن یا از این روش استفاده نمیکنند.
#حریم_خصوصی
#رمز_نگاری
#پسورد
#hash
#salt
#password
#privacypolicy
@easymicroservice
@easymicroservices
@csharptips
اما آیا پسوردی که کاربر توی وبسایت شما میزنه رو مستقیم از کلاینت به سمت سرور ارسال میکنید؟
خب چندتا سوال:
من کاربر از کجا بدونم پسورد من رو جای دیگهای ذخیره نمیکنی و ازشون استفاده نمیکنی؟
آیا بهتر نیست که خود شما هم ندونی که پسوردی که من استفاده میکنم چیه و پسورد منو از توی شبکهی خودت رد نکنی و به سمت سرور ارسال نکنی؟
راهکار چیه؟
از یک Salt ثابت هم سمت کلاینت استفاده کنید و پسورد کاربر رو یکبار سمت کلاینت هش کنید و بعدش سمت سرور هرچقدر خواستید Salt و رمزنگاری انجام بدید، اما به خاطر حریم خصوصی کاربر قبل از اینکه اطلاعات رو به سمت سرور بفرستید، اونو سمت کلاینت هم یکبار رمزنگاری کنید.
چرا اینکار رو میکنیم؟ ببینید من ممکنه از یک پسورد در چندین وبسایت استفاده کنم، اگر وبسایتها، رمزی که من استفاده میکنم رو رمزنگاری یکطرفه نکنند، هکرها میتونند بفهمند رمز من چیه و از اون برای هک کردن اکانتهای من در دیگر وبسایتها هم استفاده کنند. بنابراین لطفا همیشه رمزنگاری پسورد کاربر رودر سمت کلاینت یکبار اعمال کنید. درسته روشهایی وجود داره که شما پسورد ثابت برای وبسایتها استفاده نکنید و بهتره که اینکار رو انجام بدید اما میدونیم که همهی کاربران این رو نمیدونن یا از این روش استفاده نمیکنند.
#حریم_خصوصی
#رمز_نگاری
#پسورد
#hash
#salt
#password
#privacypolicy
@easymicroservice
@easymicroservices
@csharptips
رعایت یا ساخت اصول در مهندسی نرم افزار به شما کمک میکنه تا بتونید توسعهی نرم افزار رو نه فقط برای خودتون بلکه برای تیمهای مختلف آسون کنید.
من یه نمونه از این رو در تصویر براتون به نمایش گذاشتم که از یک سری اصول نام گذاری در سورس پروژه استفاده کردم و وقتی میخواستم برای Pipeline های Azure یک تمپلیت بسازم با کمترین زحمت تونستم اینکار رو انجام بدم. یعنی یک کار خوب توی تیم توسعه باعث راحتی کار توی تیم DevOps میشه.
@easymicroservices
@easymicroservice
@csharptips
#devops
#azure
#pipeline
من یه نمونه از این رو در تصویر براتون به نمایش گذاشتم که از یک سری اصول نام گذاری در سورس پروژه استفاده کردم و وقتی میخواستم برای Pipeline های Azure یک تمپلیت بسازم با کمترین زحمت تونستم اینکار رو انجام بدم. یعنی یک کار خوب توی تیم توسعه باعث راحتی کار توی تیم DevOps میشه.
@easymicroservices
@easymicroservice
@csharptips
#devops
#azure
#pipeline
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
Final Results
24%
این هفته پنجشنبه خوبه
27%
این هفته جمعه خوبه
11%
هفته ی بعدش پنجشنبه خوبه
6%
هفته ی بعدش جمعه خوبه
0%
روزای دیگه باشه
7%
متاسفانه وقت و فرصتش رو ندارم
24%
فعلا نظری ندارم
Easy Microservices
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
ارتباط آنلاین هست بچه ها، از هرجا میتونید وصل بشید همچنین اینکه ضبط میشه و کسانی که نمیتونن بعدا میتونن بهش دسترسی داشته باشن، ولی ترجیحا بتونید لایو آنلاین وصل بشید تا باهم ارتباط برقرار کنیم، از تجربیات و چالش هایی که خوردیم بگیم و راه حل هارو مطرح کنیم و از این داستانا 😊
Easy Microservices
اگر یک کامیونیتی بذاریم توی هفته های آتی و در مورد این صحبت کنیم که توی این یکسال توی Easy Microservices چیکار کردیم شرکت میکنید؟
بچه ها با توجه به رایگیری قبلی بیشترین رای رو جمعه این هفته آورد لطفا در این نظر سنجی هم شرکت کنید برای اینکه زمانش رو هم مشخص کنیم.
Final Results
22%
صبح باشه خوب
20%
ظهر باشه خوبه
41%
بعد از ظهر یا عصر باشه خوبه
46%
شب باشه خوبه
22%
نظری ندارم
Easy Microservices
بچه ها با توجه به رایگیری قبلی بیشترین رای رو جمعه این هفته آورد لطفا در این نظر سنجی هم شرکت کنید برای اینکه زمانش رو هم مشخص کنیم.
دوستان بین عصر و شب رو انتخاب کنید چون این دو گزینه احتمال زیاد به خاطر رای بالا انتخاب میشن.
و اگر عصر باشه احتمالا از ساعت 4 یا 5 شروع میکنیم و متینیگ رو توی تلگرام میذاریم، اگر نظر و پیشنهادی دارید حتما با ما توی کامنتها در میون بذارید.
عشقید ❤️.
و اگر عصر باشه احتمالا از ساعت 4 یا 5 شروع میکنیم و متینیگ رو توی تلگرام میذاریم، اگر نظر و پیشنهادی دارید حتما با ما توی کامنتها در میون بذارید.
عشقید ❤️.
خب بچهها با توجه به اینکه رایگیری برای امشب پیروز شد، لطفا بگید امشب ساعت 8 در میتینگ تلگرام (توی همین کانال) شرکت میکنید یا خیر؟
Final Results
40%
بله حتما میام
14%
نه متاسفانه نمیتونم بیام
41%
مطمئن نیستم ولی سعیم رو میکنم
5%
مشاهده نظرات (نظری ندارم)
Easy Microservices
خب بچهها با توجه به اینکه رایگیری برای امشب پیروز شد، لطفا بگید امشب ساعت 8 در میتینگ تلگرام (توی همین کانال) شرکت میکنید یا خیر؟
1. میکروسرویس و مونولیت و ماژولار و میکروکامپوننتها چی هستند؟
2. انتخاب بین میکروسرویس یا مونولیت؟
3. چطوری یک پروژهی بزرگ مونولیت رو ببریم به سمت میکروسرویس؟
4.چطوری میکروسرویس رو ببریم سمت مونولیت؟
5. چالشهایی که توی هرکدوم میخوریم؟
6.کارهایی که توی Easy microservices انجام دادیم؟
7.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
8. چقدر و چطوری درگیر دیتابیسها بشیم؟
9. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
10. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
2. انتخاب بین میکروسرویس یا مونولیت؟
3. چطوری یک پروژهی بزرگ مونولیت رو ببریم به سمت میکروسرویس؟
4.چطوری میکروسرویس رو ببریم سمت مونولیت؟
5. چالشهایی که توی هرکدوم میخوریم؟
6.کارهایی که توی Easy microservices انجام دادیم؟
7.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
8. چقدر و چطوری درگیر دیتابیسها بشیم؟
9. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
10. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
بچه ها به نظرتون جلسه رو کجا برگزار کنیم؟ برای من فرقی نمیکنه هرکجا شما راحت تر باشید همونجا جلسه رو برگزار میکنم.
Final Results
25%
تلگرام
63%
گوگل میت
8%
اسکایپ
4%
فرقی نمیکنه
بچه ها برای ورود به میتینگ توی گوگل میت روی لینک زیر کلیک کنید بی صبرانه منتظرتون هستیم ساعت 8 شروع میکنیم به امید خدا.
https://meet.google.com/mhb-erzt-pxs
https://meet.google.com/mhb-erzt-pxs
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
Easy Microservices pinned «بچه ها برای ورود به میتینگ توی گوگل میت روی لینک زیر کلیک کنید بی صبرانه منتظرتون هستیم ساعت 8 شروع میکنیم به امید خدا. https://meet.google.com/mhb-erzt-pxs»
Audio
فایل صوتی جلسهی Easy microservices
به زودی فایل تصویری هم توی آپارات آپلود میشه و برای دوستان قابل استفاده خواهد بود.
به زودی فایل تصویری هم توی آپارات آپلود میشه و برای دوستان قابل استفاده خواهد بود.
سلام بچهها، اول از همه ممنون از اینکه دعوت مارو پذیرفتید و مارو قابل دونستید، از اونجایی که استقبال شما باعث شد انگیزهام برای ادامهی این کامیونیتی بیشتر بشه، هفتهی بعدی هم یک جلسه باهم داشته باشیم و یک رای گیری میذارم مثل قبل، روز و ساعتش رو مشخص میکنم. بنابراین این کار رو پر قدرت ادامه خواهیم داد به امید خدا.
اول از همه اینکه بچهها تا جاییکه میتونید یک حرکت بزنید که من متکلم نباشم، چون مطمئن باشید با پخش این ویدئوها، خیلی از برنامهنویس ها از اطلاعات ماها در آینده استفاده میکنند و دعامون میکنند. توی اینترنت پر از مقاله و ویدئوهای آموزشی هست، این قرار نیست یک ویدئوی آموزشی بشه. توی این کامیونیتی شرکت کنید، حرف بزنید و ایدههاتون رو مطرح کنید، نگران نباشید که چیزی اشتباه باشه، هیچکس بی عیب و اشتباه نیست ما پر از اشتباه بودیم که امروز تونستیم همهی اونارو با همکاری و تجربه فیکس کنیم. باید به جوونتر ها اجازه بدیم که راحت حرف بزنند و اشتباه کنند و توی این مساله باید همو تشویق کنیم.
دوم از همه این جمع دوستانه خیلی چیز با ارزشی هست من وقت نشد برسم در مورد سافت اسکیلها صحبت کنم ان شالله هفتهی بعد اینکار رو میکنم ولی این جمع از همه چیز و همهی تجربیاتمون با ارزشتر هست که من اولین نفر قدرش رو میدونم دوست دارم مشارکتها بیشتر بشه و از وجودتون بیشترین استفاده رو ببریم.
دمتون گرم.
مرسی که هستید.
@easymicroservices
@easymicroservice
@csharptips
اول از همه اینکه بچهها تا جاییکه میتونید یک حرکت بزنید که من متکلم نباشم، چون مطمئن باشید با پخش این ویدئوها، خیلی از برنامهنویس ها از اطلاعات ماها در آینده استفاده میکنند و دعامون میکنند. توی اینترنت پر از مقاله و ویدئوهای آموزشی هست، این قرار نیست یک ویدئوی آموزشی بشه. توی این کامیونیتی شرکت کنید، حرف بزنید و ایدههاتون رو مطرح کنید، نگران نباشید که چیزی اشتباه باشه، هیچکس بی عیب و اشتباه نیست ما پر از اشتباه بودیم که امروز تونستیم همهی اونارو با همکاری و تجربه فیکس کنیم. باید به جوونتر ها اجازه بدیم که راحت حرف بزنند و اشتباه کنند و توی این مساله باید همو تشویق کنیم.
دوم از همه این جمع دوستانه خیلی چیز با ارزشی هست من وقت نشد برسم در مورد سافت اسکیلها صحبت کنم ان شالله هفتهی بعد اینکار رو میکنم ولی این جمع از همه چیز و همهی تجربیاتمون با ارزشتر هست که من اولین نفر قدرش رو میدونم دوست دارم مشارکتها بیشتر بشه و از وجودتون بیشترین استفاده رو ببریم.
دمتون گرم.
مرسی که هستید.
@easymicroservices
@easymicroservice
@csharptips
بچهها لطفا در رای گیری شرکت کنید که جلسهی این هفته رو توی چه روزی و چه زمانی برگزار کنیم؟
Final Results
12%
پنجشنبه این هفته ساعت 4 یا 5 بعد از ظهر
30%
پنجشنبه این هفته 8 شب
14%
جمعه این هفته ساعت 4 یا 5 بعد از ظهر
34%
جمعه این هفته 8 شب
4%
زمان یا روز دیگه مد نظرم هست
22%
نظری ندارم (دیدن نظرات)